﻿/* ================================================================================
<copyright file="ILogSubscriber.cs" company="The Framework Factory, LLC" lastWriteTime="12/05/2012 23:23:47 PM">
  Copyright (c) 2012 The Framework Factory, LLC.  All rights reserved.
</copyright>
=================================================================================== */
using System;

namespace FWF.Logging.Net
{
    /// <summary>
    /// Provides the interface of each subscriber to push information from the publisher to the subscriber.
    /// </summary>
    public interface ILogSubscriber : ITestRemoteCall
    {

        /// <summary>
        /// Called when [receive message].
        /// </summary>
        /// <param name="timeStamp">The time stamp.</param>
        /// <param name="machineName">Name of the machine.</param>
        /// <param name="instanceName">Name of the instance.</param>
        /// <param name="loggerName">Name of the logger.</param>
        /// <param name="levelValue">The level value.</param>
        /// <param name="levelName">Name of the level.</param>
        /// <param name="className">Name of the class.</param>
        /// <param name="fileName">Name of the file.</param>
        /// <param name="lineNumber">The line number.</param>
        /// <param name="methodName">Name of the method.</param>
        /// <param name="sessionId">The session id.</param>
        /// <param name="sessionName">Name of the session.</param>
        /// <param name="sessionContext">The session context.</param>
        /// <param name="message">The message.</param>
        /// <param name="exceptionType">Type of the exception.</param>
        /// <param name="exceptionMessage">The exception message.</param>
        /// <param name="threadName">Name of the thread.</param>
        /// <param name="userName">Name of the user.</param>
        void LogEvent(
            DateTime timeStamp,
            string machineName,
            string instanceName,
            string loggerName,
            int levelValue,
            string levelName,
            string className,
            string fileName,
            int lineNumber,
            string methodName,
            int sessionId,
            string sessionName,
            string sessionContext,
            string message,
            string exceptionType,
            string exceptionMessage,
            string threadName,
            string userName
            );


    }

}
